package cn.nawang.ebeim.api.service;

import java.util.List;
import java.util.Map;

import cn.nawang.ebeim.api.bean.IsOnLineBean;
import cn.nawang.ebeim.api.domain.HeartLog;
import cn.nawang.ebeim.api.domain.User;

/**
 * @ClassName: HeartLogService
 * @Description: 心跳表的业务逻辑接口层
 * @author fanyb
 * @date Aug 6, 2015 10:20:27 AM
 * @version v1.0
 */
public interface HeartLogService {

  public List<IsOnLineBean> getIsOnLineBeans(String userId);

  public void save(HeartLog heartLog);

  /**
   * 
   * @author fanyb
   * @Description: 获取该客户的终端存储容量分布情况（存储情况接口要用）
   * @param user 当前登录的用户
   * @return List 该客户的终端存储容量分布情况
   * @date Aug 7, 20155:36:04 PM
   *
   * @修改人
   * @修改日期
   */
  public List<Map<String, Object>> getMemoryCase(User user);

  public Map<String, Double> getMemoryCaseNoPercent(User user);


  /**
   * 
   * @author fanyb
   * @Description: 删除五天以前的心跳数据
   * @return boolean 删除结果
   * @date Sep 2, 20159:04:10 AM
   *
   * @修改人
   * @修改日期
   */
  public void deleteFiveDayAgo();

  /**
   * 
   * @author fanyb
   * @Description: 参数校验
   * @param lic 鉴权信息
   * @return boolean 校验结果
   * @date Sep 2, 20159:25:14 AM
   *
   * @修改人
   * @修改日期
   */
  public boolean paramCheck(String lic);

  /**
   * 
   * @author fanyb
   * @Description: 该客户容量使用情况
   * @param user
   * @return Map<String,Double>
   * @date Oct 9, 20154:33:50 PM
   *
   * @修改人
   * @修改日期
   */
  public Map<String, Double> findTotalMemoryCase(User user);

  /**
   * 
   * @author: huanghj
   * @Description: 获取该用户可用空间/剩余空间/总空间
   * @param @param customerId
   * @param @return
   * @return Map<String,Double>
   * @date 2015年10月23日下午7:02:47
   *
   * @修改人
   * @修改日期
   */
  public Map<String, Integer> getMemoryAll(User user);

  /**
   * 
   * @author: huanghj
   * @Description: 获取用户总备份次数和当天备份次数
   * @param @param user
   * @param @return
   * @return Map<String,Integer>
   * @date 2015年10月24日上午11:51:57
   *
   * @修改人
   * @修改日期
   */
  public Map<String, String> getBackupTimes(String userId);

  /**
   * 
   * @author: huanghj
   * @Description: 获取用户服务时间到期时间/剩余时间
   * @param @param labId
   * @param @return
   * @return Map<String,String>
   * @date 2015年10月24日下午2:44:48
   *
   * @修改人
   * @修改日期
   */
  public Map<String, String> getServerTimes(String labId);

  /**
   * 
   * @author: huanghj
   * @Description: 根据用户获取用户的设备名称和状态
   * @param @param userId
   * @param @return
   * @return List<IsOnLineBean>
   * @date 2015年10月29日上午11:17:49
   *
   * @修改人
   * @修改日期
   */
  public List<IsOnLineBean> getIsOnLineBeansList(String userId,String onlineSel);
  
  public List<IsOnLineBean> getIsOnLineBeansList(String userId,String terminalId,String deviceName);

}
